Regresión lineal múltiple y regresión logística
2025-10-16
Regresión (continuo): \[ J(\mathbf{w}) \;=\; \frac{1}{2m}\sum_{i=1}^{m}\left(y_i - \hat{y}_i\right)^2 \] donde \(\hat{y}_i = \mathbf{w}^\top \mathbf{x}_i\).
Clasificación binaria: Entropía cruzada (log-loss): \[ J(\mathbf{w}) \;=\; -\frac{1}{m}\sum_{i=1}^{m}\left[\,y_i\log\hat{p}_i + (1-y_i)\log(1-\hat{p}_i)\,\right] \] donde \(\hat{p}_i=\sigma(\mathbf{w}^\top \mathbf{x}_i)=\frac{1}{1+e^{-\mathbf{w}^\top\mathbf{x}_i}}\).
Visualización conceptual: “valle” del error y trayectoria en zig-zag hacia el mínimo.
Práctica recomendada: mini-batch (p. ej., 32–256).
Objetivo biomédico (ejemplo): predecir gasto energético (kcal) a partir de edad, IMC y FC.
Modelo lineal: \[ \hat{y} = \mathbf{w}^\top \mathbf{x} = w_0 + w_1 x_1 + \cdots + w_p x_p \]
Costo (MSE): \[ J(\mathbf{w}) = \frac{1}{2m}\sum_{i=1}^{m}(y_i - \hat{y}_i)^2 \]
Gradiente: \[ \frac{\partial J}{\partial w_j} = -\frac{1}{m}\sum_{i=1}^{m}(y_i - \hat{y}_i)\,x_{ij} \]
Actualización: \[ w_j \leftarrow w_j - \alpha\,\frac{\partial J}{\partial w_j} \]
in: X (m×p), y (m), α, batch_size, epochs
preprocess: X ← standardize(X)
initialize w ← zeros(p+1) # incluye sesgo w0 si se usa X̃ con columna 1
for epoch in 1..epochs:
for B in iterate_minibatches(X, y, batch_size, shuffle=True):
Xb, yb ← B
yhat ← Xb · w
grad ← (1/|B|) · (Xbᵀ · (yhat - yb))
w ← w - α · grad
return wObjetivo biomédico (ejemplo): clasificar riesgo de enfermedad (0/1) con panel de biomarcadores.
Modelo: \[ \hat{p} = \sigma(\mathbf{w}^\top\mathbf{x}),\quad \sigma(z)=\frac{1}{1+e^{-z}} \]
Costo (entropía cruzada): \[ J(\mathbf{w}) = -\frac{1}{m}\sum_{i=1}^{m}\Big[y_i\log \hat{p}_i + (1-y_i)\log(1-\hat{p}_i)\Big] \]
Gradiente: \[ \frac{\partial J}{\partial w_j} = \frac{1}{m}\sum_{i=1}^{m}(\hat{p}_i - y_i)\,x_{ij} \]
Actualización: \[ w_j \leftarrow w_j - \alpha\,\frac{\partial J}{\partial w_j} \]
in: X (m×p), y∈{0,1}^m, α, batch_size, epochs
preprocess: X ← standardize(X)
initialize w ← zeros(p+1)
for epoch in 1..epochs:
for B in iterate_minibatches(X, y, batch_size, shuffle=True):
Xb, yb ← B
z ← Xb · w
p ← sigmoid(z)
grad ← (1/|B|) · (Xbᵀ · (p - yb))
w ← w - α · grad
return wInferencia: clasificar con umbral \(\hat{p} \ge \tau\) (clínico/operativo).